home *** CD-ROM | disk | FTP | other *** search
- on setDroneConstants
- global droneData, droneSO, maxDrones
- droneSO = 25
- maxDrones = 250
- end
-
- on initializeDrones
- global droneData, droneSO, maxDrones, wTest
- droneData = []
- repeat with wDrone = 1 to maxDrones
- wSprite = wDrone + droneSO - 1
- add(droneData, [0, point(random(5800), random(4400))])
- puppetSprite(wSprite, 1)
- set the member of sprite wSprite to "Drone1"
- set the loc of sprite wSprite to point(-50, -50)
- set the ink of sprite wSprite to 36
- end repeat
- wTest = 0
- end
-
- on addDrone
- global droneData, droneSO, maxDrones, wTest
- case random(2) of
- 1:
- spawnloc = point([0, 5800][random(2)], random(4400))
- 2:
- spawnloc = point(random(5800), [0, 4400][random(2)])
- end case
- validSlot = 0
- repeat with wS = 1 to maxDrones
- if validSlot = 0 then
- if droneData[wS][1] = 0 then
- validSlot = wS
- end if
- end if
- end repeat
- if validSlot <> 0 then
- droneData[validSlot] = [1, spawnloc]
- end if
- end
-
- on runDrones
- global droneData, droneSO, maxDrones, bgOffset, wTest, playerData, totalDrones, droneSwitch
- totalDrones = 0
- droneSwitch = droneSwitch + 1
- if droneSwitch > 2 then
- droneSwitch = 1
- end if
- repeat with wDrone = 1 to maxDrones
- if droneData[wDrone][1] = 1 then
- totalDrones = totalDrones + 1
- wSprite = wDrone + droneSO - 1
- dLoc = droneData[wDrone][2]
- mloc = playerData[2]
- turnAdjust = random(12) - 6
- moveAim = findAngle(dLoc, mloc) + turnAdjust
- moveDist = findDistance(dLoc, mloc) / 10
- if moveDist > (5 + (wDrone mod 10)) then
- moveDist = 5 + (wDrone mod 10)
- end if
- locY = integer(cos(moveAim * PI / 180) * -moveDist)
- locX = integer(sin(moveAim * PI / 180) * moveDist)
- droneData[wDrone][2] = droneData[wDrone][2] + point(locX, locY)
- set the loc of sprite wSprite to (dLoc / 10) + bgOffset
- end if
- end repeat
- wTest = wTest + 1
- if wTest > maxDrones then
- wTest = wTest - maxDrones
- end if
- terminate = 0
- coreloc = droneData[wTest][2]
- repeat with wScan = 1 to maxDrones
- if wScan <> wTest then
- if droneData[wScan][1] = 1 then
- dLoc = droneData[wScan][2]
- dist = findDistance(coreloc, dLoc)
- if dist <= 15 then
- wSprite = wScan + droneSO - 1
- set the loc of sprite wSprite to point(-10, -10)
- droneData[wScan][1] = 0
- end if
- end if
- end if
- end repeat
- end
-
- on playSound whichSound, whichSlot
- global lastClear
- sound(whichSlot).stop()
- sound(whichSlot).queue([#member: member(whichSound)])
- sound(whichSlot).play()
- end
-